package middleware

import (
	"github.com/gin-gonic/gin"
	"net/http"
)

// NoCache 是一个中间件函数，用于添加响应头以防止客户端缓存 HTTP 响应。
func NoCache() gin.HandlerFunc {
	return func(ctx *gin.Context) {
		// 设置 Cache-Control 头，指示客户端不要缓存响应。
		ctx.Header("Cache-Control", "no-cache, no-store, max-age=0, must-revalidate, value")
		// 设置 Expires 头，将过期时间设置为过去的时间，确保客户端不会缓存。
		ctx.Header("Expires", "Thu, 01 Jan 1970 00:00:00 GMT")
		// 设置 Last-Modified 头，指示响应的最后修改时间为当前时间。
		ctx.Header("Last-Modified", time.Now().UTC().Format(http.TimeFormat))
		// 继续处理请求。
		ctx.Next()
	}
}
